This application relates to performance lighting in general and, more specifically, to an improved electronic method by which simultaneous access may be provided to a large number of presets stored in electronic memory.
The transition from the storage of lighting preset intensity data by mechanical means (e.g. U.S. Pat. No. 3,049,645) to their electronic storage in digitally-coded form was a major evolutionary development in lighting control, for it removed most practical limits on both the number of presets stored and the number of channels which could be controlled. Electronic storage of level data was also a prerequisite to the modern memory console, whose processor-based, serial/computational approach to manipulating intensity data allowed the automation of complex cue sequences at a lower hardware cost than the parallel/analog approach of the first experimental memory systems would have allowed.
The modern, software-based, CRT-oriented memory console as described in U.S. Pat. No. 3,898,643 has been universally adopted by those performances that can afford them. Such consoles generally limit the number of presets simultaneously available to the operator (generally to four presets). This limitation is of little or no consequence to the linear, cue-to-cue sequencing which has been used to light performances such as theatrical performances for generations. There are, however, a large number of other production types not organized enough, predictable enough, or well-enough rehearsed for cue-to-cue operation to be practical. Instead, such productions require simple and simultaneous access to a large number of presets (twenty-four or more) preferably by means of an equal number of linear potentiometers serving as preset masters. Traditional memory consoles and the serial/computational approach they employ have proven ill-suited to providing this capability.
Unrehearsed productions (or unpredictable developments in otherwise predictable ones) require quick response by the lighting console operator with the appropriate preset. Traditional memory consoles require that the operator determine the identifying number of the appropriate preset and enter it using the console's keyboard protocol before it can be made available on a fader. In contrast, a "parallel access" capability provides a large number of presets instantly available via their associated master faders; faders which can be clearly labelled by the operator with alphanumeric descriptions of their contents written on tape strips, further reducing response time.
A parallel access capability also permits the operator to use an "elements" operating strategy instead of, or in addition to, the traditional "cue-to-cue". That is, the operator may use his preset capacity to record the basic elements of stage pictures (such as color washes), each in a different preset, rather than recording the complete stage pictures themselves. These "elements" may be combined by the operator in modular fashion and in real time to produce a very large number of more complex stage pictures. In contrast, the traditional memory console's limits on the number of presets simultaneously available requires that its operator record every possible stage picture he might need, each as a separate preset and under a different identifying number (with the limits on access time described).
For these reasons, a parallel access capability and the elements strategy it allows represents a simpler, more flexible, more user-friendly, and far more economical approach to memory (both in preset number and recording time) than traditional memory consoles for many productions.
One such application requiring parallel access capability is concert lighting. Despite the availability of modern memory consoles at similar or lower cost, this industry's need for parallel access is such that it has spent more than $3,000,000 on specialized consoles providing the capability.
Because a suitable electronic parallel access memory means has not been available, the industry has been forced to rely on diode pin matrices (non-level setting versions of the device described in U.S. Pat. No. 3,049,645). Such pin matrices ran into practical limitations of physical size and cost (at about 4000 crosspoints) long before providing sufficient preset capacity. Since 1978 efforts have been directed towards developing a parallel access memory system combining the electronic channel intensity storage and keyboard, display, and data carrier functions of traditional memory consoles with the parallel access capability afforded by pin matrix units. Although several electronic memory units suitable for chase sequences have been developed, none yet satisfies all the requirements for a parallel access system suitable to the needs of this industry. Therefore, virtually all consoles being sold and used in this industry today still incorporate pin matrices and suffer from their limitations.
Parallel access capability is also proving more useful than traditional memory consoles to many auditoriums and television studios.
General-purpose auditoriums frequently host events with little or no rehearsal and minimal technical staff--factors which severely limit the usefulness of a cue-to-cue strategy and, as such, traditional memory consoles. Television studios require preset storage at level, but seldom use most of the traditional memory console's more complex features (e.g. timed fades). On the other hand, many productions in both types of venue would make better use of parallel access to presets and the elements strategy, which traditional memory consoles do not allow.
As a result, the demand for parallel access memory has lead all of the major dimming equipment manufacturers to develop consoles purportedly providing it. But the serial/computational technique generally employed by such consoles overloads the processors on which such units are based, requiring multiple processors (sometimes distributed as far away as the dimmer racks), and/or imposing severe limits on the number of channels or presets available and/or requiring the omission of essential features (such as the ability to assign a channel to more than one simultaneously available preset or the ability to display the recorded channel intensity data).
All multi-scene lighting controllers of any type must perform three basic functions: memory, mastering and comparison.
First, a memory means must maintain the desired intensity value for each of the plurality of channels controlled, in each of the plurality of presets provided. This memory means may employ mechanical or electronic storage. In "manual" consoles as described in U.S. Pat. No. 3,946,273, this memory means comprises a linear potentiometer for each value. In the early theatrical memory console described in U.S. Pat. No. 3,049,645 and in most concert lighting consoles today, the memory means comprises a diode pin. In modern memory consoles as described in U.S. Pat. No. 3,898,643, electronic storage in digitally-coded form is employed.
Secondly, the lighting controller must master the channel intensity value in each preset. This mastering function requires multiplying the channel value as stored by the current condition of the appropriate preset master. In most manual consoles and a few memory consoles, this mastering function is performed in the analog domain by attenuation, variable-gain amplification, or pulse-width modulation. Most memory consoles and a few manual consoles master by multiplying the digitally-coded channel value by the digitized level of the preset master (whether a frontpanel hardware device or a software function such as a timed fader) to produce the channel level as mastered.
Thirdly, the lighting controller must compare the channel value as mastered for each preset in which the channel appears and output the highest value produced. In manual consoles operating in both the analog domain and in parallel, this comparison function ("highest takes precedence") may be accomplished readily by combining diodes. In lighting controllers, whether analog or digital, which operate in serial, the comparison function requires a short-term storage means retaining the channel's value as mastered in the previous preset so that it may be compared with the value for the next preset. The higher of the two is always retained, and after all of the mastering and comparison routines for a given channel are completed, the value remaining in the short-term storage means represents the channel's highest level as mastered, which may then be output.
Refer now to FIGS. 1A and 1B, where the operation of typical prior art memory controllers employing the serial/computational approach to the mastering and comparison operations is illustrated. FIG. 1A is a functional diagram showing the sequence of operations and their distribution between the processor, digital hardware, and analog hardware. FIG. 1B is a block diagram of a typical hardware design. Parts having the same function in both figures are identified with the same reference number.
Such controllers store digitally-encoded channel values in a semiconductor memory 102 (typically Random Access Memory devices). Processor(s) 101 operates in serial. Each second is divided into a number of refresh cycles, during which the level for each channel is calculated. Some portion of the refresh cycle is divided into a series of channel intervals equal to the number of channels allowed. Each such channel interval is further divided into a number of preset subintervals, the number of preset subintervals being equal to the number of presets simultaneously accessible. During each preset subinterval, processor 101 uses address bus 104 to cause memory 102 to output the desired channel value for that channel in that preset via data bus 103. That value is multiplied by the current value of that preset's master (whether a front-panel hardware device or a software function) to produce the channel value as mastered which is compared with the mastered value for the channel determined in the previous subinterval as described earlier.
Despite the absence of a CRT, most prior art parallel access memory controllers employ this same serial/computational approach. The only distinction between traditional memory consoles and parallel access memory controllers using this approach is the number of preset masters provided.
It is important to note that although such units employ a number of linear potentiometers as preset masters 110-117, they serve solely as an input device by which the operator indicates the desired level of the preset. They serve no electronic role in the mastering function and they do not carry signals. Such consoles merely sample the current condition of such preset master potentiometers 110-117 by supplying them with a constant DC voltage (illustrated as from power supply 108 via bus 109) and using a parallel/serial conversion (illustrated here as a plurality of address decoders 130-137 each recognizing a unique address on bus 139 as generated by processor 101 and closing an associated analog switch 120-127) so that the condition of each of the preset master potentiometers 110-117 may be detected on analog bus 129 for digitizing by A/D converter 107 and input to processor 101 via bus 106. This sampling of preset master potentiometers is a low priority activity for the processor and need take place no more than once per refresh cycle.
It is further important to note that in modern practice, and as illustrated in FIG. 1A, channel outputs are arrived at by purely computational means. Level data is not converted to analog or parallel form until the final level for the channel has been determined. Recently, the conversion of that final channel level to parallel form by converter 191 has been relocated from the console to the dimmer area to allow the connection 198 between the two to be reduced to a few wires. In many cases, the D/A converter 190 employed to convert the digitally-encoded channel values to an analog form compatible with analog dimmers 199A has been relocated to the dimmer area so that the portion of the serial link between the console and dimmers is digital in nature. Further, current trends towards a "digital dimmer" (similar to that disclosed in U.S. Pat. No. 4,241,295) would connect the dimmers 199D directly to the digital/serial output of processor 101 eliminating the use of analog voltages in the lighting controller's basic functions at any stage.
The total workload on the memory controller's processor(s) 101 is the computational load of determining the channel levels plus the considerable workload of maintaining a keyboard, display, and data carrier. The computational workload on the processor is C.times.P.times.R.times.Op--where "C" equals the number of channels allowed; "P" equals the number of presets simultaneously available; "R" equals the refresh rate or number of times per second all channel levels must be recalculated to prevent a detectable delay in response; and Op equals the number of processor operations required for one mastering and comparison routine.
The most widely-used mid-level traditional memory console provides access to 120 channels via 4 presets (2 manual faders, 2 timed faders) with a refresh rate of 10 Hz (falling to 7 Hz with heavy workloads). The computational portion of the total processor workload is therefore 120.times.4.times.10.times.Op or 4800 mastering and comparison operations per second. A useful parallel access capability requires between 24 and 48 presets simultaneously available, resulting in an increase in the computational workload to 28,800-57,600 routines per second. Further, some users have regarded 10 Hz. as too slow for concert lighting and proposed 15 Hz. as the minimum; resulting in a 50% increase in workload to 43,200-86,400 routines per second.
Therefore, despite its apparent simplicity, a useful parallel access capacity requires an increase in computational workload of as much as 18:1 relative to that of a traditional memory console--clearly beyond the capability of the processor in this or any other traditional memory console in common use.
To provide some semblance of parallel access capability, most prior art consoles either increase the available processor power and/or accept severe limitations on features and performance.
Processor power could be drastically increased by the use of a high-speed 16-bit processor with an associated co-processor or hardware multiplier. Such devices have only recently become available and their application would require a formidable development expenditure. Emphasis has therefore been placed on the use of the mature 8-bit processors already employed in existing lighting controllers. As the total workload required by a useful parallel access capability far exceeds the capacity of a single such processor, increasing processor power requires a multi-processor system.
Without careful design, multi-processor systems seldom produce a proportional increase in available power because of the communication required between processors and their contention for shared resources. A system's architecture must therefore maximize available power.
One such architecture is "horizontal". A "core" processor is used for all level computations, and its available power is maximized by shifting the burden of keyboard, display, data carrier, and output maintenance to additional processors. Because, however, all level computations are performed by the core processor, its power sets an absolute limit on the system's performance.
Another architecture is "vertical". One processor is provided for a modest number of channels (generally 24-32) and additional processors are added for each incremental increase in channel number. To reduce contention for resources and further modularity, each processor is provided with its own associated memory. While a vertical architecture lacks the inherent limitations of a horizontal architecture because it permits a parallel-processing approach to level computations, its design is more complex because multiple processors must communicate with a shared keyboard, display, and data carrier. Frequently another processor is added as a buffer and mediator between the channel processors and these resources. In some cases, all of the processors are contained within the console. However, at least two systems in current use employ a "digital dimmer" whose drive card serves as the processor for calculating the levels of the dimmers under its control as well as their firing angles. The console therefore becomes little more than a terminal and downloads both the condition of its preset master potentiometers and any channel values entered by the operator to the processors distributed through the dimmer enclosures via a complex bidirectional link.
Any multi-processor architecture suffers fron higher hardware costs and more complex software development than a single-processor system as well as the added difficulty of diagnosing and repairing interactive faults.
It is therefore highly desirable to provide parallel access capability using a single processor. However, because of the massive computational workload required by the serial/computational approach of most prior art parallel access controllers; single-processor controllers (and some multi-processor systems) require severe limits on one or more factors in the C.times.P.times.R.times.Op equation and/or the omission of essential features or peripherals.
Some consoles allow each channel to appear in only one of the available presets, reducing the "P" factor to 1, but virtually eliminating the usefulness of the controller. Another console allows access to 48 presets but allows only 48 channels.
Even with limitations on the number of presets available and/or the number of channels and/or a limited refresh rate, some units also require the sacrifice of essential peripherals such as a level display or data carrier. Of the five parallel access controllers currently in large-scale production, three do not allow the operator to display the contents of presets. Three of the five units are single-processor designs and none allows the use of a data carrier without the purchase of a second processor.
It has therefore become highly desirable to develop an electronic method of mastering and comparing channel values stored in electronic memory that is more appropriate to the massive workloads required by a useful parallel access capability than the processor-based serial/computational approach generally employed.
There is, therefore, a need to develop an electronic method of providing simultaneous access to large numbers of presets which effects a drastic reduction in processor workload relative to the serial/computational approach without the compromise of performance or features.